﻿Imports System.Data
Imports System.Data.SqlClient

Partial Class Library_ModuloHogares
    Inherits System.Web.UI.Page
    Dim editar As Boolean
    Public iderespuesta As Integer
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = False Then
            If String.IsNullOrEmpty(Request.QueryString.Item("idHogar")) = False Then
                hdIdHogar.Value = Request.QueryString.Item("idHogar")
            End If
            llenarCombos()
            traerProyectos()
            traerCodCoba()
            If hdIdHogar.Value <> 0 Then
                editar = True
                Panel1.Visible = True
                traerHogar()
                traerNovedades()
            End If
        End If
        If hdIdHogar.Value <> 0 Then
            editar = True
        End If
        listas()
    End Sub
#Region "cargar Datos"

    Sub traerNovedades()
        Using db As New BdHogaresDataContext
            Dim a = From i In db.web_NovedadesHogars
                    Where (i.idHogar = hdIdHogar.Value)
                    Select i
            grdnovedades.DataSource = a
            grdnovedades.DataBind()
        End Using
    End Sub

    Sub llenarCombos()
        Using cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CNNdb").ConnectionString)
            cnn.Open()
            LlenarItems(rbLocalizacion, "Ubicacion", cnn)
            cnn.Close()
        End Using
    End Sub

    Sub LlenarItems(ByVal objeto As Object, ByVal pregunta As String, ByRef cnn As SqlConnection)
        If pregunta = "sino" Then : objeto.Items.Add(New ListItem("Sí", 1)) : objeto.Items.Add(New ListItem("No", 2)) : Exit Sub : End If
        Using drDatos As SqlDataReader = Funciones.TraerListas(pregunta, cnn)
            With objeto
                .DataSource = drDatos
                .DataTextField = "nombreopcion"
                .DataValueField = "valoropcion"
                .DataBind()
            End With
        End Using
    End Sub

    Sub traerProyectos() ' carga el control ddlNombreProyecto con los proyectos que han ingresado
        Dim u As New Web_Usuario
        Using h As New Helper
            u = h.GetUsuario(Context.User.Identity.Name)
        End Using
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_Proyectos
                    Where (i.web_Operadore.idOperador = u.IdOperador) Or IsNothing(u.IdOperador)
                    Select i.idProyecto, i.CodigoProyecto
            ddlNombreProyecto.DataSource = a
            ddlNombreProyecto.DataValueField = "idProyecto"
            ddlNombreProyecto.DataTextField = "CodigoProyecto"
            ddlNombreProyecto.DataBind()
        End Using
    End Sub
    Sub traerCodCoba()

        Using bd As New BdHogaresDataContext
            Dim a = bd.usp_TraerCobaXUsuario(Context.User.Identity.Name)
            ddlCodCoba.DataSource = a
            ddlCodCoba.DataTextField = "CodCoba"
            ddlCodCoba.DataValueField = "CodCoba"
            ddlCodCoba.DataBind()

            ddlCodCoba.Items.Insert(0, New ListItem("Seleccione el código", ""))
        End Using
    End Sub

    Sub traerHogar()
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_FormularioIdentificacionHogars
                      Where i.idHogar = hdIdHogar.Value
                      Select i

            Dim hogar As New Web_FormularioIdentificacionHogar
            hogar = a.FirstOrDefault()
            Municipio.cargarMunicipio(hogar.Municipio)
            rbLocalizacion.SelectedValue = hogar.Localizacion
            txtDireccion.Text = hogar.Direccion
            '           txtBarrio.Text = hogar.Barrio
            '            txtComuna.Text = hogar.Comuna
            txtCorregimiento.Text = hogar.Corregimiento
            txtVereda.Text = hogar.Vereda
            TxtPersonasConformanHogar.Text = hogar.Numerodepersonashogar
            TxtNombreContacto.Text = hogar.NombredelContacto
            TxtCelularContacto.Text = hogar.CelulardeContacto
            TxtFijoContacto.Text = hogar.FijoContacto
            TxtindicativoContacto.Text = hogar.indicativoContacto
            ddlNombreProyecto.SelectedValue = hogar.idProyecto
            ddlCodCoba.Items.Insert(0, hogar.CodCoba)
            ddlCodCoba.SelectedValue = hogar.CodCoba
            'SAMUEL CARGAR EL BARRIO
            If Not (hogar.Barrio Is Nothing) Then
                Barrio.cargarBarrio(hogar.Barrio)
            End If
            'FIN SAMUEL
        End Using
    End Sub
#End Region

#Region "Metodos"
    Sub guardar()
        Dim hogar As New Web_FormularioIdentificacionHogar
        hogar.CodCoba = ddlCodCoba.SelectedValue
        hogar.Municipio = Municipio.CodMunicipio
        hogar.Localizacion = rbLocalizacion.SelectedValue
        hogar.Direccion = txtDireccion.Text
        '        hogar.Barrio = txtBarrio.Text
        '        hogar.Comuna = txtComuna.Text
        hogar.Corregimiento = txtCorregimiento.Text
        hogar.Vereda = txtVereda.Text
        hogar.Numerodepersonashogar = TxtPersonasConformanHogar.Text
        hogar.NombredelContacto = TxtNombreContacto.Text
        hogar.CelulardeContacto = TxtCelularContacto.Text
        hogar.indicativoContacto = TxtindicativoContacto.Text
        hogar.FijoContacto = TxtFijoContacto.Text
        hogar.idProyecto = ddlNombreProyecto.SelectedValue

        'SAMUEL GUARDAR EL BARRIO Y LA COMUNA
        If (rbLocalizacion.SelectedValue = 2) Then
            hogar.Barrio = Nothing
            hogar.Comuna = Nothing
        Else
            hogar.Barrio = Barrio.CodBarrio
            hogar.Comuna = Barrio.CodComuna
        End If
        'SAMUEL

        Using bd As New BdHogaresDataContext
            bd.Web_FormularioIdentificacionHogars.InsertOnSubmit(hogar)
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 4, Request.CurrentExecutionFilePath)
            hdIdHogar.Value = hogar.idHogar
        End Using
    End Sub

    Sub listas()
        Dim rbl As RadioButtonList
        rbl = CType(rbLocalizacion, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbLocalizacion()") : Next
        rbl.Dispose()
        rbl = Nothing
        'CType(TxtPersonasConformanHogar, TextBox).Attributes.Add("onKeyPress", "return esInteger(event)")
        'CType(TxtCelularContacto, TextBox).Attributes.Add("onKeyPress", "return esInteger(event)")
        'CType(TxtFijoContacto, TextBox).Attributes.Add("onKeyPress", "return esInteger(event)")
        'CType(TxtindicativoContacto, TextBox).Attributes.Add("onKeyPress", "return esInteger(event)")
        CType(TxtNombreContacto, TextBox).Attributes.Add("onKeyPress", "return esChar(event)")
    End Sub

    Sub actualizar() ' Actualiza la informacion cuando ya existe el registro
        Using bda As New BdHogaresDataContext
            Dim hogar = (From i In bda.Web_FormularioIdentificacionHogars
                      Where i.idHogar = hdIdHogar.Value
                      Select i).Single

            hogar.CodCoba = ddlCodCoba.SelectedValue
            hogar.Municipio = Municipio.CodMunicipio
            hogar.Localizacion = rbLocalizacion.SelectedValue
            hogar.Direccion = txtDireccion.Text
            '            hogar.Barrio = txtBarrio.Text
            '            hogar.Comuna = txtComuna.Text
            hogar.Corregimiento = txtCorregimiento.Text
            hogar.Vereda = txtVereda.Text
            hogar.Numerodepersonashogar = TxtPersonasConformanHogar.Text
            hogar.NombredelContacto = TxtNombreContacto.Text
            hogar.CelulardeContacto = TxtCelularContacto.Text
            hogar.indicativoContacto = TxtindicativoContacto.Text
            hogar.FijoContacto = TxtFijoContacto.Text
            hogar.idProyecto = ddlNombreProyecto.SelectedValue

            'SAMUEL GUARDAR EL BARRIO Y LA COMUNA
            If (rbLocalizacion.SelectedValue = 2) Then
                hogar.Barrio = Nothing
                hogar.Comuna = Nothing
            Else
                hogar.Barrio = Barrio.CodBarrio
                hogar.Comuna = Barrio.CodComuna
            End If
            'SAMUEL

            bda.SubmitChanges()
            bda.registrarLog(Context.User.Identity.Name, 4, Request.CurrentExecutionFilePath)
        End Using
    End Sub
#End Region

#Region "Enventos controles"

    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If Page.IsValid = False Then
            Exit Sub
        End If
        ' Try
        If editar = True Then
            actualizar()
        Else
            guardar()
        End If
        Response.Redirect("HogaresConsulta.aspx?idHogar=" & hdIdHogar.Value)
        ' Catch ex As Exception
        'Throw ex
        ' End Try

    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Response.Redirect("Inicio.aspx")
    End Sub
#End Region


    Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
        Using bd As New BdHogaresDataContext
            Dim a As Nullable(Of Integer)
            a = Nothing
            If hdIdHogar.Value <> 0 Then
                a = hdIdHogar.Value
            End If
            Dim b = bd.usp_VerificarCobaRepetido(ddlCodCoba.SelectedValue, a).First.Column1
            If b = 0 Then
                args.IsValid = True
                CustomValidator1.Enabled = False
            Else
                CustomValidator1.Enabled = True
                args.IsValid = False
            End If
        End Using


    End Sub
End Class
